home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Mac OS / Text Encoding Converter 1.5 / Headers / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-17  |  8.5 KB  |  281 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces. 
  5.  
  6.      Version:    Mac OS 8.7
  7.  
  8.      DRI:        Julio Gonzalez
  9.  
  10.      Copyright:    © 1994-1999 by Apple Computer, Inc., all rights reserved.
  11.  
  12.      Warning:    *** APPLE INTERNAL USE ONLY ***
  13.                  This file may contain unreleased API's
  14.  
  15.      BuildInfo:    Built by:            BuildGod
  16.                  On:                    09/17/99 11:19 AM
  17.                  With Interfacer:    3.0d13   (MPW PowerPC)
  18.                  From:                TextEncodingConverter.i
  19.                      Revision:        31
  20.                      Dated:            3/22/99
  21.                      Last change by:    PKE
  22.                      Last comment:    [2247309]  Sonata: Add TECSetBasicOptions API
  23.  
  24.      Bugs:        Report bugs to Radar component "System Interfaces", "Latest"
  25.                  List the version information (from above) in the Problem Description.
  26.  
  27. */
  28. #ifndef __TEXTENCODINGCONVERTER__
  29. #define __TEXTENCODINGCONVERTER__
  30.  
  31. #ifndef __MACTYPES__
  32. #include <MacTypes.h>
  33. #endif
  34.  
  35. #ifndef __TEXTCOMMON__
  36. #include <TextCommon.h>
  37. #endif
  38.  
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62. typedef OSType                             TECPluginSignature;
  63. typedef UInt32                             TECPluginVersion;
  64. /* plugin signatures */
  65. enum {
  66.     kTECSignature                = FOUR_CHAR_CODE('encv'),
  67.     kTECUnicodePluginSignature    = FOUR_CHAR_CODE('puni'),
  68.     kTECJapanesePluginSignature    = FOUR_CHAR_CODE('pjpn'),
  69.     kTECChinesePluginSignature    = FOUR_CHAR_CODE('pzho'),
  70.     kTECKoreanPluginSignature    = FOUR_CHAR_CODE('pkor')
  71. };
  72.  
  73.  
  74. /* converter object reference */
  75. typedef struct OpaqueTECObjectRef*         TECObjectRef;
  76. typedef struct OpaqueTECSnifferObjectRef*  TECSnifferObjectRef;
  77. typedef OSType                             TECPluginSig;
  78.  
  79. struct TECConversionInfo {
  80.     TextEncoding                     sourceEncoding;
  81.     TextEncoding                     destinationEncoding;
  82.     UInt16                             reserved1;
  83.     UInt16                             reserved2;
  84. };
  85. typedef struct TECConversionInfo        TECConversionInfo;
  86. /* return number of encodings types supported by user's configuraton of the encoding converter */
  87. EXTERN_API( OSStatus )
  88. TECCountAvailableTextEncodings    (ItemCount *            numberEncodings);
  89.  
  90. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  91. EXTERN_API( OSStatus )
  92. TECGetAvailableTextEncodings    (TextEncoding             availableEncodings[],
  93.                                  ItemCount                 maxAvailableEncodings,
  94.                                  ItemCount *            actualAvailableEncodings);
  95.  
  96. /* return number of from-to encoding conversion pairs supported  */
  97. EXTERN_API( OSStatus )
  98. TECCountDirectTextEncodingConversions (ItemCount *        numberOfEncodings);
  99.  
  100. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  101. EXTERN_API( OSStatus )
  102. TECGetDirectTextEncodingConversions (TECConversionInfo     availableConversions[],
  103.                                  ItemCount                 maxAvailableConversions,
  104.                                  ItemCount *            actualAvailableConversions);
  105.  
  106. /* return number of encodings a given encoding can be converter into */
  107. EXTERN_API( OSStatus )
  108. TECCountDestinationTextEncodings (TextEncoding             inputEncoding,
  109.                                  ItemCount *            numberOfEncodings);
  110.  
  111. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  112. EXTERN_API( OSStatus )
  113. TECGetDestinationTextEncodings    (TextEncoding             inputEncoding,
  114.                                  TextEncoding             destinationEncodings[],
  115.                                  ItemCount                 maxDestinationEncodings,
  116.                                  ItemCount *            actualDestinationEncodings);
  117.  
  118. /* get info about a text encoding */
  119. EXTERN_API( OSStatus )
  120. TECGetTextEncodingInternetName    (TextEncoding             textEncoding,
  121.                                  Str255                 encodingName);
  122.  
  123. EXTERN_API( OSStatus )
  124. TECGetTextEncodingFromInternetName (TextEncoding *        textEncoding,
  125.                                  ConstStr255Param         encodingName);
  126.  
  127. /* create/dispose converters */
  128. EXTERN_API( OSStatus )
  129. TECCreateConverter                (TECObjectRef *            newEncodingConverter,
  130.                                  TextEncoding             inputEncoding,
  131.                                  TextEncoding             outputEncoding);
  132.  
  133. EXTERN_API( OSStatus )
  134. TECCreateConverterFromPath        (TECObjectRef *            newEncodingConverter,
  135.                                  const TextEncoding     inPath[],
  136.                                  ItemCount                 inEncodings);
  137.  
  138. EXTERN_API( OSStatus )
  139. TECDisposeConverter                (TECObjectRef             newEncodingConverter);
  140.  
  141. /* convert text encodings */
  142. EXTERN_API( OSStatus )
  143. TECClearConverterContextInfo    (TECObjectRef             encodingConverter);
  144.  
  145. EXTERN_API( OSStatus )
  146. TECConvertText                    (TECObjectRef             encodingConverter,
  147.                                  ConstTextPtr             inputBuffer,
  148.                                  ByteCount                 inputBufferLength,
  149.                                  ByteCount *            actualInputLength,
  150.                                  TextPtr                 outputBuffer,
  151.                                  ByteCount                 outputBufferLength,
  152.                                  ByteCount *            actualOutputLength);
  153.  
  154. EXTERN_API( OSStatus )
  155. TECFlushText                    (TECObjectRef             encodingConverter,
  156.                                  TextPtr                 outputBuffer,
  157.                                  ByteCount                 outputBufferLength,
  158.                                  ByteCount *            actualOutputLength);
  159.  
  160. /* one-to-many routines */
  161. EXTERN_API( OSStatus )
  162. TECCountSubTextEncodings        (TextEncoding             inputEncoding,
  163.                                  ItemCount *            numberOfEncodings);
  164.  
  165. EXTERN_API( OSStatus )
  166. TECGetSubTextEncodings            (TextEncoding             inputEncoding,
  167.                                  TextEncoding             subEncodings[],
  168.                                  ItemCount                 maxSubEncodings,
  169.                                  ItemCount *            actualSubEncodings);
  170.  
  171. EXTERN_API( OSStatus )
  172. TECGetEncodingList                (TECObjectRef             encodingConverter,
  173.                                  ItemCount *            numEncodings,
  174.                                  Handle *                encodingList);
  175.  
  176. EXTERN_API( OSStatus )
  177. TECCreateOneToManyConverter        (TECObjectRef *            newEncodingConverter,
  178.                                  TextEncoding             inputEncoding,
  179.                                  ItemCount                 numOutputEncodings,
  180.                                  const TextEncoding     outputEncodings[]);
  181.  
  182. EXTERN_API( OSStatus )
  183. TECConvertTextToMultipleEncodings (TECObjectRef         encodingConverter,
  184.                                  ConstTextPtr             inputBuffer,
  185.                                  ByteCount                 inputBufferLength,
  186.                                  ByteCount *            actualInputLength,
  187.                                  TextPtr                 outputBuffer,
  188.                                  ByteCount                 outputBufferLength,
  189.                                  ByteCount *            actualOutputLength,
  190.                                  TextEncodingRun         outEncodingsBuffer[],
  191.                                  ItemCount                 maxOutEncodingRuns,
  192.                                  ItemCount *            actualOutEncodingRuns);
  193.  
  194. EXTERN_API( OSStatus )
  195. TECFlushMultipleEncodings        (TECObjectRef             encodingConverter,
  196.                                  TextPtr                 outputBuffer,
  197.                                  ByteCount                 outputBufferLength,
  198.                                  ByteCount *            actualOutputLength,
  199.                                  TextEncodingRun         outEncodingsBuffer[],
  200.                                  ItemCount                 maxOutEncodingRuns,
  201.                                  ItemCount *            actualOutEncodingRuns);
  202.  
  203. /* international internet info */
  204. EXTERN_API( OSStatus )
  205. TECCountWebTextEncodings        (RegionCode             locale,
  206.                                  ItemCount *            numberEncodings);
  207.  
  208. EXTERN_API( OSStatus )
  209. TECGetWebTextEncodings            (RegionCode             locale,
  210.                                  TextEncoding             availableEncodings[],
  211.                                  ItemCount                 maxAvailableEncodings,
  212.                                  ItemCount *            actualAvailableEncodings);
  213.  
  214. EXTERN_API( OSStatus )
  215. TECCountMailTextEncodings        (RegionCode             locale,
  216.                                  ItemCount *            numberEncodings);
  217.  
  218. EXTERN_API( OSStatus )
  219. TECGetMailTextEncodings            (RegionCode             locale,
  220.                                  TextEncoding             availableEncodings[],
  221.                                  ItemCount                 maxAvailableEncodings,
  222.                                  ItemCount *            actualAvailableEncodings);
  223.  
  224. /* examine text encodings */
  225. EXTERN_API( OSStatus )
  226. TECCountAvailableSniffers        (ItemCount *            numberOfEncodings);
  227.  
  228. EXTERN_API( OSStatus )
  229. TECGetAvailableSniffers            (TextEncoding             availableSniffers[],
  230.                                  ItemCount                 maxAvailableSniffers,
  231.                                  ItemCount *            actualAvailableSniffers);
  232.  
  233. EXTERN_API( OSStatus )
  234. TECCreateSniffer                (TECSnifferObjectRef *    encodingSniffer,
  235.                                  TextEncoding             testEncodings[],
  236.                                  ItemCount                 numTextEncodings);
  237.  
  238. EXTERN_API( OSStatus )
  239. TECSniffTextEncoding            (TECSnifferObjectRef     encodingSniffer,
  240.                                  TextPtr                 inputBuffer,
  241.                                  ByteCount                 inputBufferLength,
  242.                                  TextEncoding             testEncodings[],
  243.                                  ItemCount                 numTextEncodings,
  244.                                  ItemCount                 numErrsArray[],
  245.                                  ItemCount                 maxErrs,
  246.                                  ItemCount                 numFeaturesArray[],
  247.                                  ItemCount                 maxFeatures);
  248.  
  249. EXTERN_API( OSStatus )
  250. TECDisposeSniffer                (TECSnifferObjectRef     encodingSniffer);
  251.  
  252. EXTERN_API( OSStatus )
  253. TECClearSnifferContextInfo        (TECSnifferObjectRef     encodingSniffer);
  254.  
  255. EXTERN_API( OSStatus )
  256. TECSetBasicOptions                (TECObjectRef             encodingConverter,
  257.                                  OptionBits             controlFlags);
  258.  
  259.  
  260.  
  261. #if PRAGMA_STRUCT_ALIGN
  262.     #pragma options align=reset
  263. #elif PRAGMA_STRUCT_PACKPUSH
  264.     #pragma pack(pop)
  265. #elif PRAGMA_STRUCT_PACK
  266.     #pragma pack()
  267. #endif
  268.  
  269. #ifdef PRAGMA_IMPORT_OFF
  270. #pragma import off
  271. #elif PRAGMA_IMPORT
  272. #pragma import reset
  273. #endif
  274.  
  275. #ifdef __cplusplus
  276. }
  277. #endif
  278.  
  279. #endif /* __TEXTENCODINGCONVERTER__ */
  280.  
  281.